<!DOCTYPE html>
<!-- saved from url=(0056)https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html -->
<html lang="zh-cn"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="origin">
    <meta property="og:description" content="今天看书看到其中提到的一个漏洞，那就是Nginx+PHP的服务器中，如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞。这个配置默认是1的，设为0会导致很多MVC框架（如T">
    <meta http-equiv="Cache-Control" content="no-transform">
    <meta http-equiv="Cache-Control" content="no-siteapp">
    <title>Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园</title>
    
    <link rel="stylesheet" href="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/blog-common.min.css">
    
    <link type="text/css" rel="stylesheet" href="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/201599.css">
    <link id="mobile-style" media="only screen and (max-width: 767px)" type="text/css" rel="stylesheet" href="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/bundle-custom-mobile.min.css">
    
    <link type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/batsing/rss">
    <link type="application/rsd+xml" rel="EditURI" href="https://www.cnblogs.com/batsing/rsd.xml">
    <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="https://www.cnblogs.com/batsing/wlwmanifest.xml">
    <script src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/pubads_impl_rendering_2019091901.js.下载"></script><script async="" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/analytics.js.下载"></script><script type="text/javascript" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/encoder.js.下载"></script><script src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/jquery-2.2.0.min.js.下载"></script><style>html, * {-webkit-user-select:text!important; -moz-user-select:text!important;}</style>
    <script src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/blog-common.min.js.下载"></script>
    <script>
        var currentBlogId = 201599;
        var currentBlogApp = 'batsing';
        var cb_enable_mathjax = false;
        var isLogined = true;
    </script>
    
    
    
<link rel="preload" href="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/f.txt" as="script"><script type="text/javascript" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/f.txt"></script><script src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/pubads_impl_2019091901.js.下载" async=""></script><link rel="prefetch" href="https://tpc.googlesyndication.com/safeframe/1-0-35/html/container.html"></head>
<body>
    <a name="top"></a>
    <div id="page_begin_html"><!--看看可以写什么-->
<!--<img src="http://easyread.ph.126.net/gMwb-dviUOLUPfXe8sd4SA==/7916725612546653175.jpg" alt="测试图片" />-->
<!--不支持IFrame</iframe>-->
<!--不支持frame-->
<!--<img src="https://images.cnblogs.com/cnblogs_com/batsing/747775/o_tpApp.png" alt="timepusher" style="float:right" />-->
<!--不支持script-->
<!--<div style="display: none" id="__document_write_ajax_div-1"></div><script >window['__document_write_ajax_callbacks__']['1']();</script>--></div>
    
<!--done-->
<div id="home">
<div id="header">
	<div id="blogTitle">
        <a id="lnkBlogLogo" href="https://www.cnblogs.com/batsing/"><img id="blogLogo" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/logo.gif" alt="返回主页"></a>		
		
<!--done-->
<h1><a id="Header1_HeaderTitle" class="headermaintitle HeaderMainTitle" href="https://www.cnblogs.com/batsing/">北七星≧▽≦batsing</a>
</h1>
<h2>
唔諗做設計獅嘅程序猿唔係好站長
</h2>




		
	</div><!--end: blogTitle 博客的标题和副标题 -->
	<div id="navigator">
		
<ul id="navList">
<li><a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">
博客园</a>
</li>
<li>
<a id="blog_nav_myhome" class="menu" href="https://www.cnblogs.com/batsing/">
首页</a>
</li>
<li>

<a id="blog_nav_newpost" class="menu" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">
新随笔</a>
</li>
<li>
<a id="blog_nav_contact" class="menu" href="https://msg.cnblogs.com/send/batsing">
联系</a></li>
<li>
<a id="blog_nav_rss" class="menu" href="https://www.cnblogs.com/batsing/rss/">
订阅</a>
<!--<partial name="./Shared/_XmlLink.cshtml" model="Model" /></li>--></li>
<li>
<a id="blog_nav_admin" class="menu" href="https://i.cnblogs.com/">
管理</a>
</li>
</ul>


		<div class="blogStats">
			
			<span id="stats_post_count">随笔 - 
84&nbsp; </span>
<span id="stats_article_count">文章 - 
1&nbsp; </span>
<span id="stats-comment_count">评论 - 
676</span>

			
		</div><!--end: blogStats -->
	</div><!--end: navigator 博客导航栏 -->
</div><!--end: header 头部 -->

<div id="main">
	<div id="mainContent">
	<div class="forFlow">
		<div id="post_detail">
    <!--done-->
    <div id="topics">
        <div class="post">
            <h1 class="postTitle">
                
<a id="cb_post_title_url" class="postTitle2" href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html">Nginx文件类型错误解析漏洞－－攻击演练</a>

            </h1>
            <div class="clear"></div>
            <div class="postBody">
                
<div id="cnblogs_post_body" class="blogpost-body ">
    <p>今天看书看到其中提到的一个漏洞，那就是Nginx+PHP的服务器中，如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞。这个配置默认是1的，设为0会导致很多MVC框架（如Thinkphp）都无法运行。这个漏洞就是比如<strong> localhost/img/1.jpg</strong> 是正常地访问一张图片，而 <strong>localhost/img/1.jpg<span style="color: #ff0000;">/1.php</span></strong> 却会把这张图片作为PHP文件来执行！如下图，应该是404 NotFound 才对的，它却显示说是有语法错误。</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403015456582-1148525044.jpg" alt="" width="699" height="82"></p>
<p>好家伙，既然有漏洞那就尝试怎么攻击吧。先看思路：首先弄一个很小的JPG文件方便修改，然后在JPG文件中插入代码，再上传，最后在浏览器打开。</p>
<h3>第一步，小的JPG文件当然是直接用Photoshop做一个了；</h3>
<p>几个像素就够了。样子随便，你喜欢就好。</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403020927957-1767299098.png" alt="" width="399" height="428"></p>
<h3>第二步，在JPG中插入代码，这个要用到二进制编辑器；</h3>
<p>JPG图片如何修改成为可以执行PHP代码？这里以实验目的，以成功执行一个输出PHP运行环境信息的函数&nbsp;phpinfo()&nbsp;为例。</p>
<p>首先这里编辑图片的话并不是说用画图或者Phtoshop之类的图形软件，这次要用到的软件叫做&nbsp;二进制编辑器，其中我用的这款名叫 Bz.exe，打开图片文件如下图</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403021347957-1997413546.png" alt="" width="420" height="408"></p>
<p>不要被吓到，就是16进制的数而已，右边显示的是对应的ASCII码，我们直接改右边就可以了。通过几个JPG文件的对比发现，从第二行开始就可以自行修改了，于是开工修改，注意不要使用退格删除导致长度缩短，要用字符替换的，否则会造成文件格式损坏。修改成如下图，保存到本地的图片文件夹中，在本地测试。</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403021706019-1556697112.png" alt="" width="426" height="126"></p>
<p>！注意不要使用退格删除导致长度缩短，图片损坏，比如像下图第一个的那种改了之后不显示缩略图的就已经是损坏了，损坏的图片可能会在上传的时候被拦截掉。</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403021825473-1753752520.png" alt="" width="318" height="119"></p>
<p>改好之后再本地测试，</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403022025051-1651073462.png" alt="" width="743" height="73"></p>
<p>似乎还不行，看起来应该是后面有一些PHP语法错误，那就简单粗暴，修改成下图这样，即是把后面的内容全部使用/*&nbsp;来注释掉&nbsp;结尾用&nbsp;*/&nbsp;闭合注释，当然结尾的注释不加也可以，只会多显示一个“Unterminated&nbsp;comment&nbsp;starting”的警告而已。建议不需要改成*/结尾，否则修改后的图片在Photoshop中会打不开（因为FF D9是jpg文件的标准结尾）。</p>
<p><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/681503-20160403022357019-89895639.jpg" alt=""></p>
<p>&nbsp;可以看到，已经可以执行PHP代码了。本地攻击演练成功！</p>
<h3>第三步，上传，因为上传的确实是jpg格式的文件，网站几乎无法识别和拦截；</h3>
<h3>第四步，在浏览器打开，Hello World！</h3>
<p>这一步成功需要以下几个条件：</p>
<p>1）服务器是Nginx+PHP并且配置里是cgi.fix_pathinfo=1。这个是不是nginx一般可以在Http响应头里找到相应服务器信息，用Firebug等浏览器调试工具就能看到，至于这个配置项是不是1一般很难看出，就暂且当它是吧～～；</p>
<p>2）网站没有屏蔽上传目录的脚本执行权限。这个就比较难啰，用得上Nginx的公司基本上都有专门的运维，如果这点安全意识都没有，运维可以回家了；如果是小公司什么都不懂就冒然使用Nginx那恭喜；</p>
<p>3）可以访问原图，这个看机遇，有的可以有的没有；</p>
<p>所以，慢慢找吧，也许可遇而不可求；</p>
<p>&nbsp;</p>
<h3>｜++ 此漏洞的功击效果与“文件上传漏洞”相当</h3>
<h3>∞、防御建议</h3>
<p>1）使用Apache、IIS等成熟久经考验的服务器软件，在动态语言的支持上，Nginx还是太年经了。你应该也偶尔会见到有些网站挂掉了显示个nginx错误出来，却极少见网站挂掉显示不是nginx的(未备案，过期欠费 等等除外)。</p>
<p>2）<span style="color: #0000ff;">上传目录、静态资源（CSS/JS/图片等）目录</span>，都设置好<span style="color: #0000ff;">屏蔽PHP执行权限</span>。例如使用Apache服务器的在相应目录下放一个 .htaccess 文件，里面写上</p>
<div class="cnblogs_code">
<pre>&lt;FilesMatch "(?i:\.php)$"&gt;<br>&nbsp;&nbsp; &nbsp;Deny from all<br>&lt;/FilesMatch&gt;</pre>
</div>
<p>3）可以不提供原图访问，所有图片输出时都经过程序处理，也可以在上传存储时就处理一遍根本不保存原图；</p>
<p>4）图片使用不同的服务器，这样可以与业务代码数据完全隔离，即使图片服务器被黑了，也不会泄漏多少信息；</p>
<p>5）如鸟哥所说的把那个配置项设为0，此举慎用，除非你十分确定该服务器上的所有项目都不会因此而无法运行。</p>
</div>
<div id="MySignature"></div>
<div class="clear"></div>
<div id="blog_post_info_block"><div id="BlogPostCategory">
    分类: 
            <a href="https://www.cnblogs.com/batsing/category/747570.html" target="_blank">精工细研</a></div>


    <div id="blog_post_info">
<div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(5348810,cb_blogId,1);green_channel_success(this,&#39;谢谢推荐！&#39;);">好文要顶</a>
        <a id="green_channel_follow" onclick="follow(&#39;86e0d8a0-b453-e411-b908-9dcfd8948a71&#39;);" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_weibo" href="javascript:void(0);" title="分享至新浪微博" onclick="ShareToTsina()"><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/icon_weibo_24.png" alt=""></a>
    <a id="green_channel_wechat" href="javascript:void(0);" title="分享至微信" onclick="shareOnWechat()"><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/wechat.png" alt=""></a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/batsing/" target="_blank"><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/20141018114352.png" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/batsing/">batsing</a><br>
            <a href="https://home.cnblogs.com/u/batsing/followees/">关注 - 90</a><br>
            <a href="https://home.cnblogs.com/u/batsing/followers/">粉丝 - 206</a>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow">
                <a href="javascript:void(0);" onclick="follow(&#39;86e0d8a0-b453-e411-b908-9dcfd8948a71&#39;);return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" onclick="votePost(5348810,&#39;Digg&#39;)">
        <span class="diggnum" id="digg_count">6</span>
    </div>
    <div class="buryit" onclick="votePost(5348810,&#39;Bury&#39;)">
        <span class="burynum" id="bury_count">1</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
</div>

<script type="text/javascript">
    currentDiggType = 0;
</script></div>
    <div class="clear"></div>
    <div id="post_next_prev">

    <a href="https://www.cnblogs.com/batsing/p/interrupt_callback.html" class="p_n_p_prefix">« </a> 上一篇：    <a href="https://www.cnblogs.com/batsing/p/interrupt_callback.html" title="发布于 2016-03-16 22:14">C“中断” 与 JS“异步回调” 横向对比</a>
    <br>
    <a href="https://www.cnblogs.com/batsing/p/mysql_case.html" class="p_n_p_prefix">» </a> 下一篇：    <a href="https://www.cnblogs.com/batsing/p/mysql_case.html" title="发布于 2016-04-14 01:12">MySQL大小写补坑记</a>

</div>
</div>
            </div>
            <div class="postDesc">posted @ 
<span id="post-date">2016-04-03 02:50</span>&nbsp;<a href="https://www.cnblogs.com/batsing/">batsing</a> 阅读(<span id="post_view_count">8755</span>) 评论(<span id="post_comment_count">2</span>) <a href="https://i.cnblogs.com/EditPosts.aspx?postid=5348810" rel="nofollow"> 编辑</a> <a href="javascript:void(0)" onclick="AddToWz(5348810); return false;">收藏</a>
</div>
        </div>
	    
	    
    </div><!--end: topics 文章、评论容器-->
</div>
<script src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/highlight.min.js.下载"></script>
<script>markdown_highlight();</script>
<script>
    var allowComments = true, cb_blogId = 201599, cb_blogApp = 'batsing', cb_blogUserGuid = '86e0d8a0-b453-e411-b908-9dcfd8948a71';
    var cb_entryId = 5348810, cb_entryCreatedDate = '2016-04-03 02:50', cb_postType = 1; 
    loadViewCount(cb_entryId);
</script><a name="!comments"></a>
<div id="blog-comments-placeholder">

<div id="comment_pager_top">
    
</div>

<br>
<div class="feedback_area_title">评论列表</div>
<div class="feedbackNoItems"><div class="feedbackNoItems"></div></div>	
		<div class="feedbackItem">
			<div class="feedbackListSubtitle">
				<div class="feedbackManage">
					&nbsp;&nbsp;

<span class="comment_actions">
    <a href="javascript:void(0);" onclick="return ReplyComment(3687948, &#39;RR++yVuQmALM02gq3FR2AJPo0ju6dhiSU4HTh00VAXDrysYK84o3uA==&#39;)">
        回复
    </a>
    <a href="javascript:void(0);" onclick="return QuoteComment(3687948, &#39;RR++yVuQmALM02gq3FR2AJPo0ju6dhiSU4HTh00VAXDrysYK84o3uA==&#39;)">
        引用
    </a>
    
    
</span>


				</div>
				
<a href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html#3687948" class="layer">#1楼</a>
<a name="3687948" id="comment_anchor_3687948"></a>

 
<span class="comment_date">2017-05-09 16:59</span>

 

            <a id="a_comment_author_3687948" href="https://home.cnblogs.com/u/1162957/" target="_blank">bruce1110</a>

			</div>
			<div class="feedbackCon"><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/sample_face.gif" class="avatar">
				
<div id="comment_body_3687948" class="blog_comment_body">
    现在这个问题不存在了吧？
</div>
        <div class="comment_vote">
            <a href="javascript:void(0);" class="comment_digg" onclick="return voteComment(&#39;3687948&#39;, &#39;Digg&#39;, this);">
                支持(0)
            </a>
            <a href="javascript:void(0);" class="comment_burry" onclick="return voteComment(&#39;3687948&#39;, &#39;Bury&#39;, this);">
                反对(0)
            </a>
        </div>
        

			</div>
		</div>
		<div class="feedbackItem">
			<div class="feedbackListSubtitle">
				<div class="feedbackManage">
					&nbsp;&nbsp;

<span class="comment_actions">
    <a href="javascript:void(0);" onclick="return ReplyComment(3688265, &#39;l+PM8ax1+vkLLhgcgBLWeK3T/eMCMk0lBnPVhALu7ju5kfjbpKsbpQ==&#39;)">
        回复
    </a>
    <a href="javascript:void(0);" onclick="return QuoteComment(3688265, &#39;l+PM8ax1+vkLLhgcgBLWeK3T/eMCMk0lBnPVhALu7ju5kfjbpKsbpQ==&#39;)">
        引用
    </a>
    
    
</span>


				</div>
				
<a href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html#3688265" class="layer">#2楼</a>
<a name="3688265" id="comment_anchor_3688265"></a>
[<span class="louzhu">楼主</span>]
        <span id="comment-maxId" style="display:none">3688265</span>
        <span id="comment-maxDate" style="display:none">2017/5/9 下午11:15:50</span>
 
<span class="comment_date">2017-05-09 23:15</span>

 

            <a id="a_comment_author_3688265" href="https://www.cnblogs.com/batsing/" target="_blank">batsing</a>

			</div>
			<div class="feedbackCon"><img src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/20141018114352.png" class="avatar">
				
<div id="comment_body_3688265" class="blog_comment_body">
    <a href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html#3687948" title="查看所回复的评论" onclick="commentManager.renderComments(0,50,3687948);">@</a>
bruce1110<br>说不定。自己测一下吧
</div>
        <div class="comment_vote">
            <a href="javascript:void(0);" class="comment_digg" onclick="return voteComment(&#39;3688265&#39;, &#39;Digg&#39;, this);">
                支持(0)
            </a>
            <a href="javascript:void(0);" class="comment_burry" onclick="return voteComment(&#39;3688265&#39;, &#39;Bury&#39;, this);">
                反对(0)
            </a>
        </div>
        <span id="comment_3688265_avatar" style="display:none">
            https://pic.cnblogs.com/face/681503/20141018114352.png
        </span>

			</div>
		</div>

<div id="comment_pager_bottom">
    
</div>


</div>
<script>
    var commentManager = new blogCommentManager();
    commentManager.renderComments(0);
</script>

<div id="comment_form" class="commentform">
    <a name="commentform"></a>
    <div id="divCommentShow"></div>
    <div id="comment_nav"><span id="span_refresh_tips"></span><a href="javascript:void(0);" onclick="return RefreshCommentList();" id="lnk_RefreshComments" runat="server" clientidmode="Static">刷新评论</a><a href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html#" onclick="return RefreshPage();">刷新页面</a><a href="https://www.cnblogs.com/batsing/p/nginx_bug1_attack.html#top">返回顶部</a></div>
    <div id="comment_form_container">
<script type="text/javascript" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/mention.js.下载"></script>
<div id="commentform_title">发表评论</div>
<span id="tip_comment" style="color:Red"></span>
<p>
    昵称：<input type="text" id="tbCommentAuthor" class="author" disabled="disabled" size="50" value="稻不香">
</p>
<div class="commentbox_main">
    <div class="commentbox_title">
        <div class="commentbox_title_left">评论内容：</div>
        <div class="commentbox_title_right">
            <img id="ubb_quote" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/quote.gif" alt="引用" title="添加引用" onclick="insertUBB(&#39;tbCommentBody&#39;,&#39;quote&#39;)">
            <img id="ubb_bold" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/b.png" alt="粗体" title="添加粗体" onclick="insertUBB(&#39;tbCommentBody&#39;,&#39;b&#39;)">
            <img id="ubb_url" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/lk.png" alt="链接" title="添加链接" onclick="insertUbbUrl(&#39;tbCommentBody&#39;)">
            <img id="ubb_indent" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/indent.png" alt="缩进" title="添加首行缩进" onclick="insertIndent(&#39;tbCommentBody&#39;)">
            <img id="ubb_code" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/InsertCode.gif" alt="代码" title="添加代码" onclick="insertUbbCode()">
            <img id="ubb_img" class="comment_icon" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/img.gif" alt="图片" title="上传图片" onclick="OpenImageUploadWindow();">
        </div>
    </div>
    <textarea id="tbCommentBody" class="comment_textarea"></textarea>
</div>
<p id="commentbox_opt">
    <input id="btn_comment_submit" type="button" class="comment_btn" value="提交评论">
    <span id="span_comment_canceledit" style="display:none"><a href="javascript:void(0);" onclick="return CancelCommentEdit()">不改了</a></span>
    <a href="javascript:void(0);" onclick="return logout();">退出</a>
            <a id="commentbox_opt_sub" href="javascript:void(0);" title="订阅后有新评论时会邮件通知您" onclick="commentManager.Subscribe()">订阅评论</a>
</p>
<div id="tip_comment2" style="color:Red"></div>
<p>
    [Ctrl+Enter快捷键提交]
</p>
<div style="display:none">
    <span id="comment_edit_id"></span><span id="span_parentcomment_id"></span>
    <span id="span_parent_id"></span>
    <span id="span_comment_replyto"></span>
    <span id="span_comment_posted"></span>
</div>
</div>
    <div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
    <div id="ad_t2"><a href="http://www.ucancode.com/index.htm" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-工控&#39;)">【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库</a><br><a href="https://www.jdcloud.com/cn/activity/newUser?utm_source=DMT_cnblogs&amp;utm_medium=CH&amp;utm_campaign=09vm&amp;utm_term=Virtual-Machines" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-京东云&#39;)">【活动】京东云限时优惠1.5折购云主机，最高返价值1000元礼品！</a><br><a href="https://cloud.tencent.com/act/pro/overseas?fromSource=gwzcw.2802159.2802159.2802159&amp;utm_medium=cpc&amp;utm_id=gwzcw.2802159.2802159.2802159" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-腾讯云&#39;)">【推荐】腾讯云海外云服务器1核2G19.8元/月</a><br><a href="https://www.ctyun.cn/activity/#/20190919?hmsr=%E5%8D%9A%E5%AE%A2%E5%9B%AD-0916-919%E6%B4%BB%E5%8A%A8&amp;hmpl=&amp;hmcu=&amp;hmkw=&amp;hmci=" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-天翼云&#39;)">【推荐】919 天翼云钜惠，全网低价，云主机9元轻松购</a><br><a href="http://clickc.admaster.com.cn/c/a131575,b3595121,c1705,i0,m101,8a1,8b3,h" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-华为文字&#39;)">【推荐】华为云文字识别资源包重磅上市，1元万次限时抢购</a><br><a href="https://www.cnblogs.com/cmt/p/11505603.html" target="_blank" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;Link&#39;, &#39;click&#39;, &#39;T2-华为云代金券&#39;)">【福利】git pull &amp;&amp; cherry-pick 博客园&amp;华为云百万代金券</a><br></div>
    <div id="opt_under_post"></div>
    <script async="async" src="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/gpt.js.下载"></script>
    <script>
        var googletag = googletag || {};
        googletag.cmd = googletag.cmd || [];
    </script>
    <script>
        googletag.cmd.push(function () {
            googletag.defineSlot("/1090369/C1", [300, 250], "div-gpt-ad-1546353474406-0").addService(googletag.pubads());
            googletag.defineSlot("/1090369/C2", [468, 60], "div-gpt-ad-1539008685004-0").addService(googletag.pubads());
            googletag.pubads().enableSingleRequest();
            googletag.enableServices();
        });
    </script>
    <div id="cnblogs_c1" class="c_ad_block" style="">
        <div id="div-gpt-ad-1546353474406-0" style="height: 250px; width: 300px;"><div id="google_ads_iframe_/1090369/C1_0__container__" style="border: 0pt none; width: 300px; height: 250px;"></div></div>
    </div>
    <div id="under_post_news"></div>
    <div id="cnblogs_c2" class="c_ad_block" style="">
        <div id="div-gpt-ad-1539008685004-0" style="height: 60px; width: 468px;">
            <script>
                if (new Date() >= new Date(2018, 9, 13)) {
                    googletag.cmd.push(function () { googletag.display("div-gpt-ad-1539008685004-0"); });
                }
            </script>
        <div id="google_ads_iframe_/1090369/C2_0__container__" style="border: 0pt none; width: 468px; height: 60px;"></div></div>
    </div>
    <div id="under_post_kb"></div>
    <div id="HistoryToday" class="c_ad_block"></div>
    <script type="text/javascript">
        fixPostBody();
        setTimeout(function () { incrementViewCount(cb_entryId); }, 50);
        deliverAdT2();
        deliverAdC1();
        deliverAdC2();
        loadNewsAndKb();
        loadBlogSignature();
LoadPostCategoriesTags(cb_blogId, cb_entryId);        LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
        GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
        loadOptUnderPost();
        GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);
    </script>
</div>
	</div><!--end: forFlow -->
	</div><!--end: mainContent 主体内容容器-->

	<div id="sideBar">
		<div id="sideBarMain">
			
<div id="sidebar_news" class="newsItem"><!--done-->
<h3 class="catListTitle">公告</h3>

<div id="blog-news">
    <!--<a class="important" href="http://www.cnblogs.com/batsing/category/738247.html"> 良驹求伯乐，点子区直达&gt;&gt; </a>
<br>
-->
<div id="mysiteLink">
<a style="color: white" href="https://www.batsing.com/" target="_blank">&lt;!--个人网站--&gt;</a>
<a style="color: white" href="http://batsing.tuchong.com/" target="_blank">&lt;!--图虫摄影--&gt;</a>
<a style="color: white" href="http://forum.xitek.com/collection.php?action=forumpost&amp;uid=9085656" target="_blank">&lt;!--无忌器材--&gt;</a>
<a style="color: white" href="https://www.jianshu.com/u/29c46867f882" target="_blank">&lt;!--简书--&gt;</a>
<a style="color: white" href="http://batsing.zcool.com.cn/" target="_blank">&lt;!--站酷设计--&gt;</a>
<!--<a style="color: white" href="https://www.zhihu.com/people/batsing" target="_blank">&lt;!- -桂枝药丸- -&gt;</a>-->
</div><!--
<pre id="doge">
            .,,       .,:;;iiiiiiiii;;:,,.     .,,                   
          rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,                
         r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,               
            .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:                  
          :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,               
       .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.           
    ,9BM&,            .,:;;:,,,,,,,,,,,hXA8:            ..,,,.       
   ,;&@@#r:;;;;;::::,,.   ,r,,,,,,,,,,iA@@@s,,:::;;;::,,.   .;.      
    :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..       
   .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri         
   iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;        
  ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.       
  iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:       
 .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri       
 ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.      
 ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.      
 ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.      
 .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri       
  ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:       
  .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri        
   ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,        
    irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:         
     irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:          
      ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:           
       :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,            
        .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:              
          .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.               
            .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,                  
               .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.                    
                  .,:;iirrrrrrrrrrrrrrrrri;:.                        
                        ..,:::;;;;:::,,.                             
</pre>-->
<pre id="doge">                       ::                              ::
                      :;J7, :,                        ::;7:
                      ,ivYi, ,                       ;LLLFS:
                      :iv7Yi                       :7ri;j5PL
                     ,:ivYLvr                    ,ivrrirrY2X,
                     :;r@Wwz.7r:                :ivu@kexianli.
                    :iL7::,:::iiirii:ii;::::,,irvF7rvvLujL7ur
                   ri::,:,::i:iiiiiii:i:irrv177JX7rYXqZEkvv17
                ;i:, , ::::iirrririi:i:::iiir2XXvii;L8OGJr71i
              :,, ,,:   ,::ir@mingyi.irii:i:::j1jri7ZBOS7ivv,
                 ,::,    ::rv77iiiriii:iii:i::,rvLq@huhao.Li
             ,,      ,, ,:ir7ir::,:::i;ir:::i:i::rSGGYri712:
           :::  ,v7r:: ::rrv77:, ,, ,:i7rrii:::::, ir7ri7Lri
          ,     2OBBOi,iiir;r::        ,irriiii::,, ,iv7Luur:
        ,,     i78MBBi,:,:::,:,  :7FSL: ,iriii:::i::,,:rLqXv::
        :      iuMMP: :,:::,:ii;2GY7OBB0viiii:i:iii:i:::iJqL;::
       ,     ::::i   ,,,,, ::LuBBu BBBBBErii:i:i:i:i:i:i:r77ii
      ,       :       , ,,:::rruBZ1MBBqi, :,,,:::,::::::iiriri:
     ,               ,,,,::::i:  @arqiao.       ,:,, ,:::ii;i7:
    :,       rjujLYLi   ,,:::::,:::::::::,,   ,:i,:,,,,,::i:iii
    ::      BBBBBBBBB0,    ,,::: , ,:::::: ,      ,,,, ,,:::::::
    i,  ,  ,8BMMBBBBBBi     ,,:,,     ,,, , ,   , , , :,::ii::i::
    :      iZMOMOMBBM2::::::::::,,,,     ,,,,,,:,,,::::i:irr:i:::,
    i   ,,:;u0MBMOG1L:::i::::::  ,,,::,   ,,, ::::::i:i:iirii:i:i:
    :    ,iuUuuXUkFu7i:iii:i:::, :,:,: ::::::::i:i:::::iirr7iiri::
    :     :rk@Yizero.i:::::, ,:ii:::::::i:::::i::,::::iirrriiiri::,
     :      5BMBBBBBBSr:,::rv2kuii:::iii::,:i:,, , ,,:,:i@petermu.,
          , :r50EZ8MBBBBGOBBBZP7::::i::,:::::,: :,:,::i;rrririiii::
              :jujYY7LS0ujJL7r::,::i::,::::::::::::::iirirrrrrrr:ii:
           ,:  :@kevensun.:,:,,,::::i:i:::::,,::::::iir;ii;7v77;ii;i,
           ,,,     ,,:,::::::i:iiiii:i::::,, ::::iiiir@xingjief.r;7:i,
        , , ,,,:,,::::::::iiiiiiiiii:,:,:::::::::iiir;ri7vL77rrirri::
         :,, , ::::::::i:::i:::i:i::,,,,,:,::i:i:::iir;@Secbone.ii:::
</pre>


<!--申请开通的支持script-->
<!--不支持iframe-->

<!--黑客帝国背景-->
<script type="text/javascript">window['__document_write_ajax_callbacks__']['8']();</script><script type="text/javascript">window['__document_write_ajax_callbacks__']['9']();</script><script>window['__document_write_ajax_callbacks__']['1']();</script>

<script type="text/javascript">window['__document_write_ajax_callbacks__']['10']();</script><script>window['__document_write_ajax_callbacks__']['2']();</script>

<!--H5音乐播放器-->
<link href="./Nginx文件类型错误解析漏洞－－攻击演练 - batsing - 博客园_files/audio.controls.css" rel="stylesheet">
<style>.icon{width:30px; height:30px;} /*以免加载CSS延迟页面卡*/</style>
<div id="h5audio" style="width:400px; background:black; position:relative;">
<canvas id="spectrum" width="384" height="150"></canvas>
<audio src="http://cdn.batsing.com/music/赵雷 - 鼓楼.mp3" id="audio" crossorigin="anonymous">audio not supported</audio>

<br>
<div id="audio-ctrl">
	<!--play btn-->
	<span id="playBtn" class="btn">
		<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#FFFFFF" d="M513.1 895.6c-210.3 0-381.4-171.1-381.4-381.3 0-75.5 22-148.6 63.8-211.2 7.4-11.1 22.5-14.2 33.6-6.7 11.1 7.4 14.2 22.5 6.7 33.6-36.4 54.6-55.6 118.4-55.6 184.3 0 183.5 149.3 332.8 332.9 332.8 66.9 0 131.3-19.7 186.4-57.1 11.1-7.5 26.2-4.6 33.7 6.5 7.5 11.1 4.6 26.2-6.5 33.7-63.1 42.8-137 65.4-213.6 65.4zM801.7 748.9c-5 0-10-1.5-14.3-4.7-10.8-7.9-13.2-23.1-5.3-33.9 41.8-57.2 63.8-125 63.8-196.1 0-183.5-149.3-332.9-332.8-332.9-71.1 0-138.9 22.1-196.1 63.8-10.8 7.9-26 5.5-33.9-5.3-7.9-10.8-5.5-26 5.3-33.9 65.6-47.9 143.2-73.2 224.7-73.2 210.3 0 381.3 171.1 381.3 381.4 0 81.4-25.3 159.1-73.2 224.7-4.6 6.7-12 10.1-19.5 10.1z"></path><path fill="#FFFFFF" d="M439 667c-4.2 0-8.4-1.1-12.1-3.3-7.5-4.3-12.1-12.3-12.1-21v-254c0-8.7 4.6-16.7 12.1-21 7.5-4.3 16.7-4.3 24.3 0l219.9 127c7.5 4.3 12.1 12.3 12.1 21s-4.6 16.7-12.1 21l-219.9 127c-3.8 2.3-8 3.3-12.2 3.3z m24.3-236.2v169.9l147.2-85-147.2-84.9z"></path></svg>
	</span>
	<!--pause btn-->
	<span id="pauseBtn" class="btn" style="display: none;">
		<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#FFFFFF" d="M700 789.1c-55.4 37.6-120.3 57.4-187.6 57.4-184.7 0-334.9-150.2-334.9-334.9 0-66.3 19.4-130.5 56-185.4 7.5-11.2 4.4-26.4-6.8-33.8-11.2-7.4-26.4-4.4-33.8 6.8-42 63-64.2 136.5-64.2 212.5 0 211.6 172.2 383.7 383.7 383.7 77.1 0 151.4-22.8 214.9-65.8 11.2-7.6 14.1-22.7 6.5-33.9-7.5-11.3-22.7-14.1-33.8-6.6zM512.4 127.8c-81.9 0-160.1 25.5-226.1 73.6-10.9 8-13.3 23.2-5.3 34.1 7.9 10.9 23.2 13.3 34.1 5.3 57.6-42 125.8-64.2 197.3-64.2 184.7 0 334.9 150.2 334.9 334.9 0 71.5-22.2 139.7-64.2 197.3-8 10.9-5.6 26.2 5.3 34.1 4.3 3.2 9.4 4.7 14.4 4.7 7.5 0 15-3.5 19.7-10 48.2-66 73.6-144.1 73.6-226.1 0.1-211.5-172.1-383.7-383.7-383.7z"></path><path fill="#FFFFFF" d="M471.2 618.4V404.8c0-18-14.6-32.5-32.5-32.5s-32.5 14.6-32.5 32.5v213.6c0 18 14.6 32.5 32.5 32.5s32.5-14.6 32.5-32.5zM618.8 618.4V404.8c0-18-14.6-32.5-32.5-32.5-18 0-32.5 14.6-32.5 32.5v213.6c0 18 14.6 32.5 32.5 32.5s32.5-14.6 32.5-32.5z"></path></svg>
	</span>
	<!--next btn-->
	<span id="nextBtn" class="btn">
		<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#FFFFFF" d="M699.8 788.7c-55.5 37.6-120.4 57.4-187.7 57.4-184.8 0-335.2-150.4-335.2-335.2 0-66.4 19.4-130.6 56-185.6 7.5-11.2 4.4-26.4-6.8-33.9s-26.4-4.4-33.9 6.8c-42 63.1-64.2 136.6-64.2 212.7 0 211.8 172.3 384 384.1 384 77.1 0 151.5-22.8 215.1-65.9 11.2-7.6 14.1-22.8 6.5-33.9-7.6-11.1-22.8-14-33.9-6.4zM512.1 126.9c-82 0-160.3 25.5-226.3 73.7-10.9 8-13.3 23.2-5.3 34.1 8 10.9 23.2 13.3 34.1 5.3 57.6-42.1 125.9-64.3 197.5-64.3 184.8 0 335.2 150.4 335.2 335.2 0 71.6-22.2 139.8-64.3 197.4-8 10.9-5.6 26.2 5.3 34.1 4.3 3.2 9.4 4.7 14.4 4.7 7.5 0 15-3.5 19.7-10 48.2-66 73.7-144.3 73.7-226.2 0-211.7-172.3-384-384-384z"></path><path fill="#FFFFFF" d="M619.4 642.2c13.5 0 24.4-10.9 24.4-24.4V398.1c0-13.5-10.9-24.4-24.4-24.4-13.5 0-24.4 10.9-24.4 24.4v81.7L416.9 376.9c-7.6-4.4-16.9-4.4-24.4 0-7.6 4.4-12.2 12.4-12.2 21.2v219.7c0 8.7 4.7 16.8 12.2 21.2 3.8 2.2 8 3.3 12.2 3.3 4.2 0 8.4-1.1 12.2-3.3L595 536.2v81.7c0 13.4 10.9 24.3 24.4 24.3z m-190.3-66.7V440.4l117 67.6-117 67.5z"></path></svg>
	</span>
	<!--progress-->
	<span id="audio-progress">
		<span id="auido-proBtn" style="margin-left: 0px;"></span>
	</span>
	<span id="audio-timer">0:00/4:41</span>
	<span id="audio-tips">赵雷 - 鼓楼.mp3</span>
</div>
<div id="fullBtn" style="color: gray;position: absolute;top: 0;right: 30px;cursor: pointer;">全屏</div>
</div>

<script type="text/javascript">window['__document_write_ajax_callbacks__']['11']();</script><script>window['__document_write_ajax_callbacks__']['3']();</script>
<script type="text/javascript">window['__document_write_ajax_callbacks__']['12']();</script><script type="text/javascript">window['__document_write_ajax_callbacks__']['13']();</script><script>window['__document_write_ajax_callbacks__']['4']();</script>
<script type="text/javascript">window['__document_write_ajax_callbacks__']['14']();</script><script type="text/javascript">window['__document_write_ajax_callbacks__']['15']();</script><script>window['__document_write_ajax_callbacks__']['5']();</script>
<script type="text/javascript">window['__document_write_ajax_callbacks__']['16']();</script><script>window['__document_write_ajax_callbacks__']['6']();</script>
    <div id="profile_block">
        昵称：
        <a href="https://home.cnblogs.com/u/batsing/">
            batsing
        </a>
        <br>
        园龄：
        <a href="https://home.cnblogs.com/u/batsing/" title="入园时间：2014-10-14">
            4年11个月
        </a>
        <br>
        粉丝：
        <a href="https://home.cnblogs.com/u/batsing/followers/">
            206
        </a>
        <br>
        关注：
        <a href="https://home.cnblogs.com/u/batsing/followees/">
            90
        </a>
        <div id="p_b_follow">
<a href="javascript:void(0)" onclick="follow(&#39;86e0d8a0-b453-e411-b908-9dcfd8948a71&#39;)">+加关注</a></div>
        <script type="text/javascript">window['__document_write_ajax_callbacks__']['17']();</script><script>window['__document_write_ajax_callbacks__']['7']();</script>
    </div>
</div>

</div>

			<div id="blog-calendar" style="display:none"></div><script>loadBlogDefaultCalendar();</script>
			
			<div id="leftcontentcontainer">
				<div id="blog-sidecolumn">

<!-- 搜索 -->
<div id="sidebar_search" class="sidebar-block">
    <div id="sidebar_search" class="mySearch">
        <h3 class="catListTitle">搜索</h3>
        <div id="sidebar_search_box">
            <div id="widget_my_zzk" class="div_my_zzk">
                <input type="text" id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk">&nbsp;<input onclick="zzk_go()" type="button" value="找找看" id="btnZzk" class="btn_my_zzk">
            </div>
            <div id="widget_my_google" class="div_my_zzk">
                <input type="text" name="google_q" id="google_q" onkeydown="return google_go_enter(event);" class="input_my_zzk">&nbsp;<input onclick="google_go()" type="button" value="谷歌搜索" class="btn_my_zzk">
            </div>
        </div>
    </div>
</div>

<!-- 常用链接 -->


<!-- 最新随笔 -->



<!-- 我的标签 -->


<!-- 积分与排名 -->


<!-- 随笔分类、随笔档案、文章分类、新闻分类、相册、链接 -->
<div id="sidebar_categories">
    
        <div id="sidebar_postcategory" class="catListPostCategory sidebar-block">
            <h3 class="catListTitle">
                

随笔分类



            </h3>


            <ul>

                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/925731.html" rel="" target="">
    PHP-bug(2)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/738247.html" rel="" target="">
    点子人(5)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/804457.html" rel="" target="">
    多媒体(3)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/1251461.html" rel="" target="">
    骇客典案(1)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/747570.html" rel="" target="">
    精工细研(32)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/761612.html" rel="" target="">
    前端手札(6)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/923999.html" rel="" target="">
    我的JS库(1)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/781214.html" rel="" target="">
    运维手册(15)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/718983.html" rel="" target="">
    站长to假狗屎(9)
</a>
 

                        </li>
                        <li>
                            
<a href="https://www.cnblogs.com/batsing/category/743947.html" rel="" target="">
    重拾C-智能硬件(3)
</a>
 

                        </li>

            </ul>


        </div>

</div>

<!-- 最新评论 -->




<!-- 阅读排行榜 -->


<!-- 评论排行榜 -->


<!-- 推荐排行榜 -->
</div>
                    <script>loadBlogSideColumn();</script>
			</div>
			
		</div><!--end: sideBarMain -->
	</div><!--end: sideBar 侧边栏容器 -->
	<div class="clear"></div>
	</div><!--end: main -->
	<div class="clear"></div>
	<div id="footer">
		<!--done-->
Copyright © 2019 batsing
<br><span id="poweredby">Powered by .NET Core 3.0.0-preview9-19423-09 on Linux</span>



	</div><!--end: footer -->
</div><!--end: home 自定义的最大容器 -->


    <div id="page_end_html">
        <div><canvas id="matrixBG" width="1920" height="1080"></canvas></div>
    </div>


<script type="text/javascript">
//显示评论区头像
function showAvatar(){
    $(".feedbackItem").each(function(){
        var avatar = $(this).children(".feedbackCon").children("span:last").html();
        avatar = avatar ? avatar.replace("http://", "https://") : "https://pic.cnblogs.com/face/sample_face.gif";  //没有头像用默认头像
        //console.log( avatar );
        $('<img src="'+ avatar +'" class="avatar" />').prependTo( $(this).children(".feedbackCon") );
    });
}

$(function(){ setTimeout(function(){ showAvatar(); }, 1000) });
$(document).on("click", ".pager a", function(){
    setTimeout(function(){ showAvatar(); }, 1000);
});
</script><script type="text/javascript">
var musicHost = "http://cdn.batsing.com/music/";
var musicArr = [
	musicHost+"腾格尔 - 可能否.mp3",
	musicHost+"Mr.Van Gogh..mp3",
	musicHost+"About ZZ.mp3",
	musicHost+"Come.mp3",
	musicHost+"The Sky City.mp3",
//	musicHost+"xxx.mp3"
	musicHost+"那英 - 默.mp3",
//	musicHost+"打扰一下乐团 - 平凡之路.mp3",
	musicHost+"霍尊 - 天行九歌.mp3",
	musicHost+"宋冬野 - 安和桥.mp3",
	musicHost+"银临 - 腐草为萤.mp3",
	musicHost+"赵雷 - 八十年代的歌.mp3",
	musicHost+"黄昏尼罗河纯音乐.mp3",
	musicHost+"张江 - 离玉堂之万里残阳.mp3",
	musicHost+"赵雷 - 鼓楼.mp3",
	musicHost+"克罗地亚的卡农.mp3",
	musicHost+"许嵩 - 弹指一挥间.mp3",
	musicHost+"尧十三 - 北方女王.mp3",
	musicHost+"尧十三 - 南方的女王.mp3",
	musicHost+"优美钢琴曲合集－南尘.m4a"
];
</script><script type="text/javascript">
//全屏展示
$("#fullBtn").click(function(){
    $("#home").hide();
    $("#h5audio").appendTo("body");
    $("#h5audio").addClass("audio-full");
    $("#fullBtn").hide();
});
//取消全屏
$(document).keyup(function(event){
    if(event.keyCode==27 || event.keyCode==96) {
        $("#h5audio").removeClass("audio-full");
        $("#h5audio").appendTo("#blog-news");
        $("#home").show();
        $("#fullBtn").show();
    }
});


</script><script type="text/javascript">getFollowStatus('86e0d8a0-b453-e411-b908-9dcfd8948a71');</script></body></html>